// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
/* exported sleep, waitLeisure, createTestWindow, waitTestWindows,
destroyTestWindows, defineScriptEvent, scriptEvent,
- collectStatistics, runPerfScript */
+ collectStatistics, runPerfScript, disableHelperAutoExit */
const { Gio, GLib, Meta, Shell } = imports.gi;
let _perfHelper = null;
function _getPerfHelper() {
- if (_perfHelper == null)
+ if (_perfHelper == null) {
_perfHelper = new PerfHelper();
+ _perfHelper._autoExit = true;
+ }
return _perfHelper;
}
perfHelper.DestroyWindowsAsync().catch(logError);
}
+/**
+ * disableHelperAutoExit:
+ *
+ * Don't exixt the perf helper after running the script. Instead it will remain
+ * running until something else makes it exit, e.g. the Wayland socket closing.
+ */
+function disableHelperAutoExit() {
+ let perfHelper = _getPerfHelper();
+ perfHelper._autoExit = false;
+}
+
/**
* defineScriptEvent
* @param {string} name: The event will be called script.<name>
try {
const perfHelper = _getPerfHelper();
- perfHelper.ExitSync();
+ if (perfHelper._autoExit)
+ perfHelper.ExitSync();
} catch (err) {
log(`Failed to exit helper: ${err}\n${err.stack}`);
Meta.exit(Meta.ExitCode.ERROR);